package Equations;

import java.io.*;
import java.math.BigInteger;
import java.util.*;
public class Solution {
	public static void main(String args[] ) throws Exception {
		//BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedReader br = new BufferedReader(new FileReader("src/Equations/data.txt"));
		String line = br.readLine();
		br.close();
		int N = Integer.parseInt(line);
		if(N==1)System.out.println(1);
		else{
			List<Integer> prime=solveprime(N);
			int divsor[]=new int[prime.size()];
			//						for(int i=2;i<=N;i++){
			//							int a=i;
			//							for(int j=0;j<=prime.size()-1;j++){
			//								if(a==1)break;
			//								while(a%prime.get(j)==0){
			//									a/=prime.get(j);
			//									divsor[j]++;
			//								}
			//			
			//							}
			//						}
			for(int i=0;i<=prime.size()-1;i++){
				int a=prime.get(i);
				int b=N/a;
				while(b>=1){
					divsor[i]+=b;
					b=(b/a);
				}			
			}
			BigInteger result=BigInteger.ONE;
			for(int i=0;i<=prime.size()-1;i++){
				result=result.multiply(BigInteger.valueOf((2*divsor[i]+1)));
				result=result.mod(BigInteger.valueOf(1000007));
			}
			System.out.println(result);
		}
	}



	public static List<Integer> solveprime(int n){
		List<Integer> prime=new LinkedList<Integer>();
		boolean a[]=new boolean[n+1];
		for(int i=2;i<=n;i++){
			if(a[i]==false){
				for(int j=i+i;j<=n;j+=i)
					a[j]=true;
			}
		}
		for(int i=2;i<=n;i++){
			if(a[i]==false){
				prime.add(i);
			}
		}
		return prime;
	}
}

